import request from '@/utils/axios'

export interface OperateLogType {
  id: number // 操作编号
  username: string // 操作账号
  nickname: string // 操作人名字
  userIp: string // 操作 IP
  userId: number // 操作人员
  agent: string // 操作人 UA
  module: string // 操作模块
  type: string // 操作类型
  content: string // 操作内容
  extra: string // 操作拓展参数
  requestMethod: string // 请求方法
  requestUrl: string // 请求 URL
  create_time?: Date // 操作时间
}

export interface OperateLogPageReqType extends PageParam {
  userId?: number
  module?: string
  type?: string
  create_time?: Date[]
}

export interface OperateLogExportReqType {
  userId?: number
  module?: string
  type?: string
  create_time?: Date[]
}

export interface OperateLogPageRepType extends PageResponse {
  list: OperateLogType[]
}

/**
 * 操作日志接口
 */
export const OperateLogApi = {
  // 查询分页列表
  page: (params: OperateLogPageReqType): Promise<OperateLogPageRepType> => {
    return request.get({ url: '/system/operate-log/page', params, is_mock: true })
  },
  // 导出
  export: (params: OperateLogExportReqType): Promise<OperateLogType[]> => {
    return request.get({ url: '/system/operate-log/export', params, is_mock: true })
  }
}
